import { ISearchOptions } from '@xterm/addon-search';
import { IEvent, ITerminalOptions, ITheme, Terminal } from '@xterm/xterm';

// 渲染类型枚举
// XTerm 终端接口
export interface IXTerm {
  raw: Terminal; // xterm.js 的 Terminal 实例
  container: HTMLDivElement; // 终端容器 DOM 元素
  onSearchResultsChange: IEvent<{ resultIndex: number; resultCount: number }>; // 搜索结果变化事件

  copySelection(): Promise<void>; // 复制选中内容
  onSelectionChange(): Promise<void>; // 选区变化时触发
  open(): void; // 打开终端
  fit(): void; // 适配终端尺寸
  findNext(text: string, searchOptions?: ISearchOptions): boolean; // 查找下一个匹配项
  findPrevious(text: string, searchOptions?: ISearchOptions): boolean; // 查找上一个匹配项
  closeSearch(): void; // 关闭搜索
  updateTheme(theme: ITheme | undefined): void; // 更新终端主题
}
